{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "The autoreload extension is already loaded. To reload it, use:\n",
      "  %reload_ext autoreload\n",
      "\r",
      " [    0 / 1000 ]   0% - ? it/s\r",
      " [    0 / 1000 ]   0% - ? it/s\r",
      " [    1 / 1000 ]   0% - 0:00:00 left \r",
      " [    2 / 1000 ]   0% - 0:00:00 left \r",
      " [    3 / 1000 ]   0% - 0:00:00 left \r",
      " [    4 / 1000 ]   0% - 0:00:00 left \r",
      " [    5 / 1000 ]   0% - 0:00:00 left \r",
      " [    6 / 1000 ]   1% - 0:00:00 left \r",
      " [    7 / 1000 ]   1% - 0:00:00 left \r",
      " [    8 / 1000 ]   1% - 0:00:00 left \r",
      " [    9 / 1000 ]   1% - 0:00:00 left \r",
      " [   10 / 1000 ]   1% - 0:00:00 left \r",
      " [   11 / 1000 ]   1% - 0:00:00 left \r",
      " [   12 / 1000 ]   1% - 0:00:00 left \r",
      " [   13 / 1000 ]   1% - 0:00:00 left \r",
      " [   14 / 1000 ]   1% - 0:00:00 left \r",
      " [   15 / 1000 ]   2% - 0:00:00 left \r",
      " [   16 / 1000 ]   2% - 0:00:00 left \r",
      " [   17 / 1000 ]   2% - 0:00:00 left \r",
      " [   18 / 1000 ]   2% - 0:00:00 left \r",
      " [   19 / 1000 ]   2% - 0:00:00 left \r",
      " [   20 / 1000 ]   2% - 0:00:00 left \r",
      " [   21 / 1000 ]   2% - 0:00:00 left \r",
      " [   22 / 1000 ]   2% - 0:00:00 left \r",
      " [   23 / 1000 ]   2% - 0:00:00 left \r",
      " [   24 / 1000 ]   2% - 0:00:00 left \r",
      " [   25 / 1000 ]   2% - 0:00:00 left \r",
      " [   26 / 1000 ]   3% - 0:00:00 left \r",
      " [   27 / 1000 ]   3% - 0:00:00 left \r",
      " [   28 / 1000 ]   3% - 0:00:00 left \r",
      " [   29 / 1000 ]   3% - 0:00:00 left \r",
      " [   30 / 1000 ]   3% - 0:00:00 left \r",
      " [   31 / 1000 ]   3% - 0:00:00 left \r",
      " [   32 / 1000 ]   3% - 0:00:00 left \r",
      " [   33 / 1000 ]   3% - 0:00:00 left \r",
      " [   34 / 1000 ]   3% - 0:00:00 left \r",
      " [   35 / 1000 ]   4% - 0:00:00 left \r",
      " [   36 / 1000 ]   4% - 0:00:00 left \r",
      " [   37 / 1000 ]   4% - 0:00:00 left \r",
      " [   38 / 1000 ]   4% - 0:00:00 left \r",
      " [   39 / 1000 ]   4% - 0:00:00 left \r",
      " [   40 / 1000 ]   4% - 0:00:00 left \r",
      " [   41 / 1000 ]   4% - 0:00:00 left \r",
      " [   42 / 1000 ]   4% - 0:00:00 left \r",
      " [   43 / 1000 ]   4% - 0:00:00 left \r",
      " [   44 / 1000 ]   4% - 0:00:00 left \r",
      " [   45 / 1000 ]   4% - 0:00:00 left \r",
      " [   46 / 1000 ]   5% - 0:00:00 left \r",
      " [   47 / 1000 ]   5% - 0:00:00 left \r",
      " [   48 / 1000 ]   5% - 0:00:00 left \r",
      " [   49 / 1000 ]   5% - 0:00:00 left \r",
      " [   50 / 1000 ]   5% - 0:00:00 left \r",
      " [   51 / 1000 ]   5% - 0:00:00 left \r",
      " [   52 / 1000 ]   5% - 0:00:00 left \r",
      " [   53 / 1000 ]   5% - 0:00:00 left \r",
      " [   54 / 1000 ]   5% - 0:00:00 left \r",
      " [   55 / 1000 ]   6% - 0:00:00 left \r",
      " [   56 / 1000 ]   6% - 0:00:00 left \r",
      " [   57 / 1000 ]   6% - 0:00:00 left \r",
      " [   58 / 1000 ]   6% - 0:00:00 left \r",
      " [   59 / 1000 ]   6% - 0:00:00 left \r",
      " [   60 / 1000 ]   6% - 0:00:00 left \r",
      " [   61 / 1000 ]   6% - 0:00:00 left \r",
      " [   62 / 1000 ]   6% - 0:00:00 left \r",
      " [   63 / 1000 ]   6% - 0:00:00 left \r",
      " [   64 / 1000 ]   6% - 0:00:00 left \r",
      " [   65 / 1000 ]   6% - 0:00:00 left \r",
      " [   66 / 1000 ]   7% - 0:00:00 left \r",
      " [   67 / 1000 ]   7% - 0:00:00 left \r",
      " [   68 / 1000 ]   7% - 0:00:00 left \r",
      " [   69 / 1000 ]   7% - 0:00:00 left \r",
      " [   70 / 1000 ]   7% - 0:00:00 left \r",
      " [   71 / 1000 ]   7% - 0:00:00 left \r",
      " [   72 / 1000 ]   7% - 0:00:00 left \r",
      " [   73 / 1000 ]   7% - 0:00:00 left \r",
      " [   74 / 1000 ]   7% - 0:00:00 left \r",
      " [   75 / 1000 ]   8% - 0:00:00 left \r",
      " [   76 / 1000 ]   8% - 0:00:00 left \r",
      " [   77 / 1000 ]   8% - 0:00:00 left \r",
      " [   78 / 1000 ]   8% - 0:00:00 left \r",
      " [   79 / 1000 ]   8% - 0:00:00 left \r",
      " [   80 / 1000 ]   8% - 0:00:00 left \r",
      " [   81 / 1000 ]   8% - 0:00:00 left \r",
      " [   82 / 1000 ]   8% - 0:00:00 left \r",
      " [   83 / 1000 ]   8% - 0:00:00 left \r",
      " [   84 / 1000 ]   8% - 0:00:00 left \r",
      " [   85 / 1000 ]   8% - 0:00:00 left \r",
      " [   86 / 1000 ]   9% - 0:00:00 left \r",
      " [   87 / 1000 ]   9% - 0:00:00 left \r",
      " [   88 / 1000 ]   9% - 0:00:00 left \r",
      " [   89 / 1000 ]   9% - 0:00:00 left \r",
      " [   90 / 1000 ]   9% - 0:00:00 left \r",
      " [   91 / 1000 ]   9% - 0:00:00 left \r",
      " [   92 / 1000 ]   9% - 0:00:00 left \r",
      " [   93 / 1000 ]   9% - 0:00:00 left \r",
      " [   94 / 1000 ]   9% - 0:00:00 left \r",
      " [   95 / 1000 ]  10% - 0:00:00 left \r",
      " [   96 / 1000 ]  10% - 0:00:00 left \r",
      " [   97 / 1000 ]  10% - 0:00:00 left \r",
      " [   98 / 1000 ]  10% - 0:00:00 left \r",
      " [   99 / 1000 ]  10% - 0:00:00 left \r",
      " [  100 / 1000 ]  10% - 0:00:00 left \r",
      " [  101 / 1000 ]  10% - 0:00:00 left \r",
      " [  102 / 1000 ]  10% - 0:00:00 left \r",
      " [  103 / 1000 ]  10% - 0:00:00 left \r",
      " [  104 / 1000 ]  10% - 0:00:00 left \r",
      " [  105 / 1000 ]  10% - 0:00:00 left \r",
      " [  106 / 1000 ]  11% - 0:00:00 left \r",
      " [  107 / 1000 ]  11% - 0:00:00 left \r",
      " [  108 / 1000 ]  11% - 0:00:00 left \r",
      " [  109 / 1000 ]  11% - 0:00:00 left \r",
      " [  110 / 1000 ]  11% - 0:00:00 left \r",
      " [  111 / 1000 ]  11% - 0:00:00 left \r",
      " [  112 / 1000 ]  11% - 0:00:00 left \r",
      " [  113 / 1000 ]  11% - 0:00:00 left \r",
      " [  114 / 1000 ]  11% - 0:00:00 left \r",
      " [  115 / 1000 ]  12% - 0:00:00 left \r",
      " [  116 / 1000 ]  12% - 0:00:00 left \r",
      " [  117 / 1000 ]  12% - 0:00:00 left \r",
      " [  118 / 1000 ]  12% - 0:00:00 left \r",
      " [  119 / 1000 ]  12% - 0:00:00 left \r",
      " [  120 / 1000 ]  12% - 0:00:00 left \r",
      " [  121 / 1000 ]  12% - 0:00:00 left \r",
      " [  122 / 1000 ]  12% - 0:00:00 left \r",
      " [  123 / 1000 ]  12% - 0:00:00 left \r",
      " [  124 / 1000 ]  12% - 0:00:00 left \r",
      " [  125 / 1000 ]  12% - 0:00:00 left \r",
      " [  126 / 1000 ]  13% - 0:00:00 left \r",
      " [  127 / 1000 ]  13% - 0:00:00 left \r",
      " [  128 / 1000 ]  13% - 0:00:00 left \r",
      " [  129 / 1000 ]  13% - 0:00:00 left \r",
      " [  130 / 1000 ]  13% - 0:00:00 left \r",
      " [  131 / 1000 ]  13% - 0:00:00 left \r",
      " [  132 / 1000 ]  13% - 0:00:00 left \r",
      " [  133 / 1000 ]  13% - 0:00:00 left \r",
      " [  134 / 1000 ]  13% - 0:00:00 left \r",
      " [  135 / 1000 ]  14% - 0:00:00 left \r",
      " [  136 / 1000 ]  14% - 0:00:00 left \r",
      " [  137 / 1000 ]  14% - 0:00:00 left \r",
      " [  138 / 1000 ]  14% - 0:00:00 left \r",
      " [  139 / 1000 ]  14% - 0:00:00 left \r",
      " [  140 / 1000 ]  14% - 0:00:00 left \r",
      " [  141 / 1000 ]  14% - 0:00:00 left \r",
      " [  142 / 1000 ]  14% - 0:00:00 left \r",
      " [  143 / 1000 ]  14% - 0:00:00 left \r",
      " [  144 / 1000 ]  14% - 0:00:00 left \r",
      " [  145 / 1000 ]  14% - 0:00:00 left \r",
      " [  146 / 1000 ]  15% - 0:00:00 left \r",
      " [  147 / 1000 ]  15% - 0:00:00 left \r",
      " [  148 / 1000 ]  15% - 0:00:00 left \r",
      " [  149 / 1000 ]  15% - 0:00:00 left \r",
      " [  150 / 1000 ]  15% - 0:00:00 left \r",
      " [  151 / 1000 ]  15% - 0:00:00 left \r",
      " [  152 / 1000 ]  15% - 0:00:00 left \r",
      " [  153 / 1000 ]  15% - 0:00:00 left \r",
      " [  154 / 1000 ]  15% - 0:00:00 left \r",
      " [  155 / 1000 ]  16% - 0:00:00 left \r",
      " [  156 / 1000 ]  16% - 0:00:00 left \r",
      " [  157 / 1000 ]  16% - 0:00:00 left \r",
      " [  158 / 1000 ]  16% - 0:00:00 left \r",
      " [  159 / 1000 ]  16% - 0:00:00 left \r",
      " [  160 / 1000 ]  16% - 0:00:00 left \r",
      " [  161 / 1000 ]  16% - 0:00:00 left \r",
      " [  162 / 1000 ]  16% - 0:00:00 left \r",
      " [  163 / 1000 ]  16% - 0:00:00 left \r",
      " [  164 / 1000 ]  16% - 0:00:00 left \r",
      " [  165 / 1000 ]  16% - 0:00:00 left \r",
      " [  166 / 1000 ]  17% - 0:00:00 left \r",
      " [  167 / 1000 ]  17% - 0:00:00 left \r",
      " [  168 / 1000 ]  17% - 0:00:00 left \r",
      " [  169 / 1000 ]  17% - 0:00:00 left \r",
      " [  170 / 1000 ]  17% - 0:00:00 left \r",
      " [  171 / 1000 ]  17% - 0:00:00 left \r",
      " [  172 / 1000 ]  17% - 0:00:00 left \r",
      " [  173 / 1000 ]  17% - 0:00:00 left \r",
      " [  174 / 1000 ]  17% - 0:00:00 left \r",
      " [  175 / 1000 ]  18% - 0:00:00 left \r",
      " [  176 / 1000 ]  18% - 0:00:00 left \r",
      " [  177 / 1000 ]  18% - 0:00:00 left \r",
      " [  178 / 1000 ]  18% - 0:00:00 left \r",
      " [  179 / 1000 ]  18% - 0:00:00 left \r",
      " [  180 / 1000 ]  18% - 0:00:00 left \r",
      " [  181 / 1000 ]  18% - 0:00:00 left \r",
      " [  182 / 1000 ]  18% - 0:00:00 left \r",
      " [  183 / 1000 ]  18% - 0:00:00 left \r",
      " [  184 / 1000 ]  18% - 0:00:00 left \r",
      " [  185 / 1000 ]  18% - 0:00:00 left \r",
      " [  186 / 1000 ]  19% - 0:00:00 left \r",
      " [  187 / 1000 ]  19% - 0:00:00 left \r",
      " [  188 / 1000 ]  19% - 0:00:00 left \r",
      " [  189 / 1000 ]  19% - 0:00:00 left \r",
      " [  190 / 1000 ]  19% - 0:00:00 left \r",
      " [  191 / 1000 ]  19% - 0:00:00 left \r",
      " [  192 / 1000 ]  19% - 0:00:00 left \r",
      " [  193 / 1000 ]  19% - 0:00:00 left \r",
      " [  194 / 1000 ]  19% - 0:00:00 left \r",
      " [  195 / 1000 ]  20% - 0:00:00 left \r",
      " [  196 / 1000 ]  20% - 0:00:00 left \r",
      " [  197 / 1000 ]  20% - 0:00:00 left \r",
      " [  198 / 1000 ]  20% - 0:00:00 left \r",
      " [  199 / 1000 ]  20% - 0:00:00 left \r",
      " [  200 / 1000 ]  20% - 0:00:00 left \r",
      " [  201 / 1000 ]  20% - 0:00:00 left \r",
      " [  202 / 1000 ]  20% - 0:00:00 left \r",
      " [  203 / 1000 ]  20% - 0:00:00 left \r",
      " [  204 / 1000 ]  20% - 0:00:00 left \r",
      " [  205 / 1000 ]  20% - 0:00:00 left \r",
      " [  206 / 1000 ]  21% - 0:00:00 left \r",
      " [  207 / 1000 ]  21% - 0:00:00 left \r",
      " [  208 / 1000 ]  21% - 0:00:00 left \r",
      " [  209 / 1000 ]  21% - 0:00:00 left \r",
      " [  210 / 1000 ]  21% - 0:00:00 left \r",
      " [  211 / 1000 ]  21% - 0:00:00 left \r",
      " [  212 / 1000 ]  21% - 0:00:00 left \r",
      " [  213 / 1000 ]  21% - 0:00:00 left \r",
      " [  214 / 1000 ]  21% - 0:00:00 left \r",
      " [  215 / 1000 ]  22% - 0:00:00 left \r",
      " [  216 / 1000 ]  22% - 0:00:00 left \r",
      " [  217 / 1000 ]  22% - 0:00:00 left \r",
      " [  218 / 1000 ]  22% - 0:00:00 left \r",
      " [  219 / 1000 ]  22% - 0:00:00 left \r",
      " [  220 / 1000 ]  22% - 0:00:00 left \r",
      " [  221 / 1000 ]  22% - 0:00:00 left \r",
      " [  222 / 1000 ]  22% - 0:00:00 left \r",
      " [  223 / 1000 ]  22% - 0:00:00 left \r",
      " [  224 / 1000 ]  22% - 0:00:00 left \r",
      " [  225 / 1000 ]  22% - 0:00:00 left \r",
      " [  226 / 1000 ]  23% - 0:00:00 left \r",
      " [  227 / 1000 ]  23% - 0:00:00 left \r",
      " [  228 / 1000 ]  23% - 0:00:00 left \r",
      " [  229 / 1000 ]  23% - 0:00:00 left \r",
      " [  230 / 1000 ]  23% - 0:00:00 left \r",
      " [  231 / 1000 ]  23% - 0:00:00 left \r",
      " [  232 / 1000 ]  23% - 0:00:00 left \r",
      " [  233 / 1000 ]  23% - 0:00:00 left \r",
      " [  234 / 1000 ]  23% - 0:00:00 left \r",
      " [  235 / 1000 ]  24% - 0:00:00 left \r",
      " [  236 / 1000 ]  24% - 0:00:00 left \r",
      " [  237 / 1000 ]  24% - 0:00:00 left \r",
      " [  238 / 1000 ]  24% - 0:00:00 left \r",
      " [  239 / 1000 ]  24% - 0:00:00 left \r",
      " [  240 / 1000 ]  24% - 0:00:00 left \r",
      " [  241 / 1000 ]  24% - 0:00:00 left \r",
      " [  242 / 1000 ]  24% - 0:00:00 left \r",
      " [  243 / 1000 ]  24% - 0:00:00 left \r",
      " [  244 / 1000 ]  24% - 0:00:00 left \r",
      " [  245 / 1000 ]  24% - 0:00:00 left \r",
      " [  246 / 1000 ]  25% - 0:00:00 left \r",
      " [  247 / 1000 ]  25% - 0:00:00 left \r",
      " [  248 / 1000 ]  25% - 0:00:00 left \r",
      " [  249 / 1000 ]  25% - 0:00:00 left \r",
      " [  250 / 1000 ]  25% - 0:00:00 left \r",
      " [  251 / 1000 ]  25% - 0:00:00 left \r",
      " [  252 / 1000 ]  25% - 0:00:00 left \r",
      " [  253 / 1000 ]  25% - 0:00:00 left \r",
      " [  254 / 1000 ]  25% - 0:00:00 left \r",
      " [  255 / 1000 ]  26% - 0:00:00 left \r",
      " [  256 / 1000 ]  26% - 0:00:00 left \r",
      " [  257 / 1000 ]  26% - 0:00:00 left \r",
      " [  258 / 1000 ]  26% - 0:00:00 left \r",
      " [  259 / 1000 ]  26% - 0:00:00 left \r",
      " [  260 / 1000 ]  26% - 0:00:00 left \r",
      " [  261 / 1000 ]  26% - 0:00:00 left \r",
      " [  262 / 1000 ]  26% - 0:00:00 left \r",
      " [  263 / 1000 ]  26% - 0:00:00 left \r",
      " [  264 / 1000 ]  26% - 0:00:00 left \r",
      " [  265 / 1000 ]  26% - 0:00:00 left \r",
      " [  266 / 1000 ]  27% - 0:00:00 left \r",
      " [  267 / 1000 ]  27% - 0:00:00 left \r",
      " [  268 / 1000 ]  27% - 0:00:00 left \r",
      " [  269 / 1000 ]  27% - 0:00:00 left \r",
      " [  270 / 1000 ]  27% - 0:00:00 left \r",
      " [  271 / 1000 ]  27% - 0:00:00 left \r",
      " [  272 / 1000 ]  27% - 0:00:00 left \r",
      " [  273 / 1000 ]  27% - 0:00:00 left \r",
      " [  274 / 1000 ]  27% - 0:00:00 left \r",
      " [  275 / 1000 ]  28% - 0:00:00 left \r",
      " [  276 / 1000 ]  28% - 0:00:00 left \r",
      " [  277 / 1000 ]  28% - 0:00:00 left \r",
      " [  278 / 1000 ]  28% - 0:00:00 left \r",
      " [  279 / 1000 ]  28% - 0:00:00 left \r",
      " [  280 / 1000 ]  28% - 0:00:00 left \r",
      " [  281 / 1000 ]  28% - 0:00:00 left \r",
      " [  282 / 1000 ]  28% - 0:00:00 left \r",
      " [  283 / 1000 ]  28% - 0:00:00 left \r",
      " [  284 / 1000 ]  28% - 0:00:00 left \r",
      " [  285 / 1000 ]  28% - 0:00:00 left \r",
      " [  286 / 1000 ]  29% - 0:00:00 left \r",
      " [  287 / 1000 ]  29% - 0:00:00 left \r",
      " [  288 / 1000 ]  29% - 0:00:00 left \r",
      " [  289 / 1000 ]  29% - 0:00:00 left \r",
      " [  290 / 1000 ]  29% - 0:00:00 left \r",
      " [  291 / 1000 ]  29% - 0:00:00 left \r",
      " [  292 / 1000 ]  29% - 0:00:00 left \r",
      " [  293 / 1000 ]  29% - 0:00:00 left \r",
      " [  294 / 1000 ]  29% - 0:00:00 left \r",
      " [  295 / 1000 ]  30% - 0:00:00 left \r",
      " [  296 / 1000 ]  30% - 0:00:00 left \r",
      " [  297 / 1000 ]  30% - 0:00:00 left \r",
      " [  298 / 1000 ]  30% - 0:00:00 left \r",
      " [  299 / 1000 ]  30% - 0:00:00 left \r",
      " [  300 / 1000 ]  30% - 0:00:00 left \r",
      " [  301 / 1000 ]  30% - 0:00:00 left \r",
      " [  302 / 1000 ]  30% - 0:00:00 left \r",
      " [  303 / 1000 ]  30% - 0:00:00 left \r",
      " [  304 / 1000 ]  30% - 0:00:00 left \r",
      " [  305 / 1000 ]  30% - 0:00:00 left \r",
      " [  306 / 1000 ]  31% - 0:00:00 left \r",
      " [  307 / 1000 ]  31% - 0:00:00 left \r",
      " [  308 / 1000 ]  31% - 0:00:00 left \r",
      " [  309 / 1000 ]  31% - 0:00:00 left \r",
      " [  310 / 1000 ]  31% - 0:00:00 left \r",
      " [  311 / 1000 ]  31% - 0:00:00 left \r",
      " [  312 / 1000 ]  31% - 0:00:00 left \r",
      " [  313 / 1000 ]  31% - 0:00:00 left \r",
      " [  314 / 1000 ]  31% - 0:00:00 left \r",
      " [  315 / 1000 ]  32% - 0:00:00 left \r",
      " [  316 / 1000 ]  32% - 0:00:00 left \r",
      " [  317 / 1000 ]  32% - 0:00:00 left \r",
      " [  318 / 1000 ]  32% - 0:00:00 left \r",
      " [  319 / 1000 ]  32% - 0:00:00 left \r",
      " [  320 / 1000 ]  32% - 0:00:00 left \r",
      " [  321 / 1000 ]  32% - 0:00:00 left \r",
      " [  322 / 1000 ]  32% - 0:00:00 left \r",
      " [  323 / 1000 ]  32% - 0:00:00 left \r",
      " [  324 / 1000 ]  32% - 0:00:00 left \r",
      " [  325 / 1000 ]  32% - 0:00:00 left \r",
      " [  326 / 1000 ]  33% - 0:00:00 left \r",
      " [  327 / 1000 ]  33% - 0:00:00 left \r",
      " [  328 / 1000 ]  33% - 0:00:00 left \r",
      " [  329 / 1000 ]  33% - 0:00:00 left \r",
      " [  330 / 1000 ]  33% - 0:00:00 left \r",
      " [  331 / 1000 ]  33% - 0:00:00 left \r",
      " [  332 / 1000 ]  33% - 0:00:00 left \r",
      " [  333 / 1000 ]  33% - 0:00:00 left \r",
      " [  334 / 1000 ]  33% - 0:00:00 left \r",
      " [  335 / 1000 ]  34% - 0:00:00 left \r",
      " [  336 / 1000 ]  34% - 0:00:00 left \r",
      " [  337 / 1000 ]  34% - 0:00:00 left \r",
      " [  338 / 1000 ]  34% - 0:00:00 left \r",
      " [  339 / 1000 ]  34% - 0:00:00 left \r",
      " [  340 / 1000 ]  34% - 0:00:00 left \r",
      " [  341 / 1000 ]  34% - 0:00:00 left \r",
      " [  342 / 1000 ]  34% - 0:00:00 left \r",
      " [  343 / 1000 ]  34% - 0:00:00 left \r",
      " [  344 / 1000 ]  34% - 0:00:00 left \r",
      " [  345 / 1000 ]  34% - 0:00:00 left \r",
      " [  346 / 1000 ]  35% - 0:00:00 left \r",
      " [  347 / 1000 ]  35% - 0:00:00 left \r",
      " [  348 / 1000 ]  35% - 0:00:00 left \r",
      " [  349 / 1000 ]  35% - 0:00:00 left \r",
      " [  350 / 1000 ]  35% - 0:00:00 left \r",
      " [  351 / 1000 ]  35% - 0:00:00 left \r",
      " [  352 / 1000 ]  35% - 0:00:00 left \r",
      " [  353 / 1000 ]  35% - 0:00:00 left \r",
      " [  354 / 1000 ]  35% - 0:00:00 left \r",
      " [  355 / 1000 ]  36% - 0:00:00 left \r",
      " [  356 / 1000 ]  36% - 0:00:00 left \r",
      " [  357 / 1000 ]  36% - 0:00:00 left \r",
      " [  358 / 1000 ]  36% - 0:00:00 left \r",
      " [  359 / 1000 ]  36% - 0:00:00 left \r",
      " [  360 / 1000 ]  36% - 0:00:00 left \r",
      " [  361 / 1000 ]  36% - 0:00:00 left \r",
      " [  362 / 1000 ]  36% - 0:00:00 left \r",
      " [  363 / 1000 ]  36% - 0:00:00 left \r",
      " [  364 / 1000 ]  36% - 0:00:00 left \r",
      " [  365 / 1000 ]  36% - 0:00:00 left \r",
      " [  366 / 1000 ]  37% - 0:00:00 left \r",
      " [  367 / 1000 ]  37% - 0:00:00 left \r",
      " [  368 / 1000 ]  37% - 0:00:00 left \r",
      " [  369 / 1000 ]  37% - 0:00:00 left \r",
      " [  370 / 1000 ]  37% - 0:00:00 left \r",
      " [  371 / 1000 ]  37% - 0:00:00 left \r",
      " [  372 / 1000 ]  37% - 0:00:00 left \r",
      " [  373 / 1000 ]  37% - 0:00:00 left \r",
      " [  374 / 1000 ]  37% - 0:00:00 left \r",
      " [  375 / 1000 ]  38% - 0:00:00 left \r",
      " [  376 / 1000 ]  38% - 0:00:00 left \r",
      " [  377 / 1000 ]  38% - 0:00:00 left \r",
      " [  378 / 1000 ]  38% - 0:00:00 left \r",
      " [  379 / 1000 ]  38% - 0:00:00 left \r",
      " [  380 / 1000 ]  38% - 0:00:00 left \r",
      " [  381 / 1000 ]  38% - 0:00:00 left \r",
      " [  382 / 1000 ]  38% - 0:00:00 left \r",
      " [  383 / 1000 ]  38% - 0:00:00 left \r",
      " [  384 / 1000 ]  38% - 0:00:00 left \r",
      " [  385 / 1000 ]  38% - 0:00:00 left \r",
      " [  386 / 1000 ]  39% - 0:00:00 left \r",
      " [  387 / 1000 ]  39% - 0:00:00 left \r",
      " [  388 / 1000 ]  39% - 0:00:00 left \r",
      " [  389 / 1000 ]  39% - 0:00:00 left \r",
      " [  390 / 1000 ]  39% - 0:00:00 left \r",
      " [  391 / 1000 ]  39% - 0:00:00 left \r",
      " [  392 / 1000 ]  39% - 0:00:00 left \r",
      " [  393 / 1000 ]  39% - 0:00:00 left \r",
      " [  394 / 1000 ]  39% - 0:00:00 left \r",
      " [  395 / 1000 ]  40% - 0:00:00 left \r",
      " [  396 / 1000 ]  40% - 0:00:00 left \r",
      " [  397 / 1000 ]  40% - 0:00:00 left \r",
      " [  398 / 1000 ]  40% - 0:00:00 left \r",
      " [  399 / 1000 ]  40% - 0:00:00 left \r",
      " [  400 / 1000 ]  40% - 0:00:00 left \r",
      " [  401 / 1000 ]  40% - 0:00:00 left \r",
      " [  402 / 1000 ]  40% - 0:00:00 left \r",
      " [  403 / 1000 ]  40% - 0:00:00 left \r",
      " [  404 / 1000 ]  40% - 0:00:00 left \r",
      " [  405 / 1000 ]  40% - 0:00:00 left \r",
      " [  406 / 1000 ]  41% - 0:00:00 left \r",
      " [  407 / 1000 ]  41% - 0:00:00 left \r",
      " [  408 / 1000 ]  41% - 0:00:00 left \r",
      " [  409 / 1000 ]  41% - 0:00:00 left \r",
      " [  410 / 1000 ]  41% - 0:00:00 left \r",
      " [  411 / 1000 ]  41% - 0:00:00 left \r",
      " [  412 / 1000 ]  41% - 0:00:00 left \r",
      " [  413 / 1000 ]  41% - 0:00:00 left \r",
      " [  414 / 1000 ]  41% - 0:00:00 left \r",
      " [  415 / 1000 ]  42% - 0:00:00 left \r",
      " [  416 / 1000 ]  42% - 0:00:00 left \r",
      " [  417 / 1000 ]  42% - 0:00:00 left \r",
      " [  418 / 1000 ]  42% - 0:00:00 left \r",
      " [  419 / 1000 ]  42% - 0:00:00 left \r",
      " [  420 / 1000 ]  42% - 0:00:00 left \r",
      " [  421 / 1000 ]  42% - 0:00:00 left \r",
      " [  422 / 1000 ]  42% - 0:00:00 left \r",
      " [  423 / 1000 ]  42% - 0:00:00 left \r",
      " [  424 / 1000 ]  42% - 0:00:00 left \r",
      " [  425 / 1000 ]  42% - 0:00:00 left \r",
      " [  426 / 1000 ]  43% - 0:00:00 left \r",
      " [  427 / 1000 ]  43% - 0:00:00 left \r",
      " [  428 / 1000 ]  43% - 0:00:00 left \r",
      " [  429 / 1000 ]  43% - 0:00:00 left \r",
      " [  430 / 1000 ]  43% - 0:00:00 left \r",
      " [  431 / 1000 ]  43% - 0:00:00 left \r",
      " [  432 / 1000 ]  43% - 0:00:00 left \r",
      " [  433 / 1000 ]  43% - 0:00:00 left \r",
      " [  434 / 1000 ]  43% - 0:00:00 left \r",
      " [  435 / 1000 ]  44% - 0:00:00 left \r",
      " [  436 / 1000 ]  44% - 0:00:00 left \r",
      " [  437 / 1000 ]  44% - 0:00:00 left \r",
      " [  438 / 1000 ]  44% - 0:00:00 left \r",
      " [  439 / 1000 ]  44% - 0:00:00 left \r",
      " [  440 / 1000 ]  44% - 0:00:00 left \r",
      " [  441 / 1000 ]  44% - 0:00:00 left \r",
      " [  442 / 1000 ]  44% - 0:00:00 left \r",
      " [  443 / 1000 ]  44% - 0:00:00 left \r",
      " [  444 / 1000 ]  44% - 0:00:00 left \r",
      " [  445 / 1000 ]  44% - 0:00:00 left \r",
      " [  446 / 1000 ]  45% - 0:00:00 left \r",
      " [  447 / 1000 ]  45% - 0:00:00 left \r",
      " [  448 / 1000 ]  45% - 0:00:00 left \r",
      " [  449 / 1000 ]  45% - 0:00:00 left \r",
      " [  450 / 1000 ]  45% - 0:00:00 left \r",
      " [  451 / 1000 ]  45% - 0:00:00 left \r",
      " [  452 / 1000 ]  45% - 0:00:00 left \r",
      " [  453 / 1000 ]  45% - 0:00:00 left \r",
      " [  454 / 1000 ]  45% - 0:00:00 left \r",
      " [  455 / 1000 ]  46% - 0:00:00 left \r",
      " [  456 / 1000 ]  46% - 0:00:00 left \r",
      " [  457 / 1000 ]  46% - 0:00:00 left \r",
      " [  458 / 1000 ]  46% - 0:00:00 left \r",
      " [  459 / 1000 ]  46% - 0:00:00 left \r",
      " [  460 / 1000 ]  46% - 0:00:00 left \r",
      " [  461 / 1000 ]  46% - 0:00:00 left \r",
      " [  462 / 1000 ]  46% - 0:00:00 left \r",
      " [  463 / 1000 ]  46% - 0:00:00 left \r",
      " [  464 / 1000 ]  46% - 0:00:00 left \r",
      " [  465 / 1000 ]  46% - 0:00:00 left \r",
      " [  466 / 1000 ]  47% - 0:00:00 left \r",
      " [  467 / 1000 ]  47% - 0:00:00 left \r",
      " [  468 / 1000 ]  47% - 0:00:00 left \r",
      " [  469 / 1000 ]  47% - 0:00:00 left \r",
      " [  470 / 1000 ]  47% - 0:00:00 left \r",
      " [  471 / 1000 ]  47% - 0:00:00 left \r",
      " [  472 / 1000 ]  47% - 0:00:00 left \r",
      " [  473 / 1000 ]  47% - 0:00:00 left \r",
      " [  474 / 1000 ]  47% - 0:00:00 left \r",
      " [  475 / 1000 ]  48% - 0:00:00 left \r",
      " [  476 / 1000 ]  48% - 0:00:00 left \r",
      " [  477 / 1000 ]  48% - 0:00:00 left \r",
      " [  478 / 1000 ]  48% - 0:00:00 left \r",
      " [  479 / 1000 ]  48% - 0:00:00 left \r",
      " [  480 / 1000 ]  48% - 0:00:00 left \r",
      " [  481 / 1000 ]  48% - 0:00:00 left \r",
      " [  482 / 1000 ]  48% - 0:00:00 left \r",
      " [  483 / 1000 ]  48% - 0:00:00 left \r",
      " [  484 / 1000 ]  48% - 0:00:00 left \r",
      " [  485 / 1000 ]  48% - 0:00:00 left \r",
      " [  486 / 1000 ]  49% - 0:00:00 left \r",
      " [  487 / 1000 ]  49% - 0:00:00 left \r",
      " [  488 / 1000 ]  49% - 0:00:00 left \r",
      " [  489 / 1000 ]  49% - 0:00:00 left \r",
      " [  490 / 1000 ]  49% - 0:00:00 left \r",
      " [  491 / 1000 ]  49% - 0:00:00 left \r",
      " [  492 / 1000 ]  49% - 0:00:00 left \r",
      " [  493 / 1000 ]  49% - 0:00:00 left \r",
      " [  494 / 1000 ]  49% - 0:00:00 left \r",
      " [  495 / 1000 ]  50% - 0:00:00 left \r",
      " [  496 / 1000 ]  50% - 0:00:00 left \r",
      " [  497 / 1000 ]  50% - 0:00:00 left \r",
      " [  498 / 1000 ]  50% - 0:00:00 left \r",
      " [  499 / 1000 ]  50% - 0:00:00 left \r",
      " [  500 / 1000 ]  50% - 0:00:00 left \r",
      " [  501 / 1000 ]  50% - 0:00:00 left \r",
      " [  502 / 1000 ]  50% - 0:00:00 left \r",
      " [  503 / 1000 ]  50% - 0:00:00 left \r",
      " [  504 / 1000 ]  50% - 0:00:00 left \r",
      " [  505 / 1000 ]  50% - 0:00:00 left \r",
      " [  506 / 1000 ]  51% - 0:00:00 left \r",
      " [  507 / 1000 ]  51% - 0:00:00 left \r",
      " [  508 / 1000 ]  51% - 0:00:00 left \r",
      " [  509 / 1000 ]  51% - 0:00:00 left \r",
      " [  510 / 1000 ]  51% - 0:00:00 left \r",
      " [  511 / 1000 ]  51% - 0:00:00 left \r",
      " [  512 / 1000 ]  51% - 0:00:00 left \r",
      " [  513 / 1000 ]  51% - 0:00:00 left \r",
      " [  514 / 1000 ]  51% - 0:00:00 left \r",
      " [  515 / 1000 ]  52% - 0:00:00 left \r",
      " [  516 / 1000 ]  52% - 0:00:00 left \r",
      " [  517 / 1000 ]  52% - 0:00:00 left \r",
      " [  518 / 1000 ]  52% - 0:00:00 left \r",
      " [  519 / 1000 ]  52% - 0:00:00 left \r",
      " [  520 / 1000 ]  52% - 0:00:00 left \r",
      " [  521 / 1000 ]  52% - 0:00:00 left \r",
      " [  522 / 1000 ]  52% - 0:00:00 left \r",
      " [  523 / 1000 ]  52% - 0:00:00 left \r",
      " [  524 / 1000 ]  52% - 0:00:00 left \r",
      " [  525 / 1000 ]  52% - 0:00:00 left \r",
      " [  526 / 1000 ]  53% - 0:00:00 left \r",
      " [  527 / 1000 ]  53% - 0:00:00 left \r",
      " [  528 / 1000 ]  53% - 0:00:00 left \r",
      " [  529 / 1000 ]  53% - 0:00:00 left \r",
      " [  530 / 1000 ]  53% - 0:00:00 left \r",
      " [  531 / 1000 ]  53% - 0:00:00 left \r",
      " [  532 / 1000 ]  53% - 0:00:00 left \r",
      " [  533 / 1000 ]  53% - 0:00:00 left \r",
      " [  534 / 1000 ]  53% - 0:00:00 left \r",
      " [  535 / 1000 ]  54% - 0:00:00 left \r",
      " [  536 / 1000 ]  54% - 0:00:00 left \r",
      " [  537 / 1000 ]  54% - 0:00:00 left \r",
      " [  538 / 1000 ]  54% - 0:00:00 left \r",
      " [  539 / 1000 ]  54% - 0:00:00 left \r",
      " [  540 / 1000 ]  54% - 0:00:00 left \r",
      " [  541 / 1000 ]  54% - 0:00:00 left \r",
      " [  542 / 1000 ]  54% - 0:00:00 left \r",
      " [  543 / 1000 ]  54% - 0:00:00 left \r",
      " [  544 / 1000 ]  54% - 0:00:00 left \r",
      " [  545 / 1000 ]  54% - 0:00:00 left \r",
      " [  546 / 1000 ]  55% - 0:00:00 left \r",
      " [  547 / 1000 ]  55% - 0:00:00 left \r",
      " [  548 / 1000 ]  55% - 0:00:00 left \r",
      " [  549 / 1000 ]  55% - 0:00:00 left \r",
      " [  550 / 1000 ]  55% - 0:00:00 left \r",
      " [  551 / 1000 ]  55% - 0:00:00 left \r",
      " [  552 / 1000 ]  55% - 0:00:00 left \r",
      " [  553 / 1000 ]  55% - 0:00:00 left \r",
      " [  554 / 1000 ]  55% - 0:00:00 left \r",
      " [  555 / 1000 ]  56% - 0:00:00 left \r",
      " [  556 / 1000 ]  56% - 0:00:00 left \r",
      " [  557 / 1000 ]  56% - 0:00:00 left \r",
      " [  558 / 1000 ]  56% - 0:00:00 left \r",
      " [  559 / 1000 ]  56% - 0:00:00 left \r",
      " [  560 / 1000 ]  56% - 0:00:00 left \r",
      " [  561 / 1000 ]  56% - 0:00:00 left \r",
      " [  562 / 1000 ]  56% - 0:00:00 left \r",
      " [  563 / 1000 ]  56% - 0:00:00 left \r",
      " [  564 / 1000 ]  56% - 0:00:00 left \r",
      " [  565 / 1000 ]  56% - 0:00:00 left \r",
      " [  566 / 1000 ]  57% - 0:00:00 left \r",
      " [  567 / 1000 ]  57% - 0:00:00 left \r",
      " [  568 / 1000 ]  57% - 0:00:00 left \r",
      " [  569 / 1000 ]  57% - 0:00:00 left \r",
      " [  570 / 1000 ]  57% - 0:00:00 left \r",
      " [  571 / 1000 ]  57% - 0:00:00 left \r",
      " [  572 / 1000 ]  57% - 0:00:00 left \r",
      " [  573 / 1000 ]  57% - 0:00:00 left \r",
      " [  574 / 1000 ]  57% - 0:00:00 left \r",
      " [  575 / 1000 ]  58% - 0:00:00 left \r",
      " [  576 / 1000 ]  58% - 0:00:00 left \r",
      " [  577 / 1000 ]  58% - 0:00:00 left \r",
      " [  578 / 1000 ]  58% - 0:00:00 left \r",
      " [  579 / 1000 ]  58% - 0:00:00 left \r",
      " [  580 / 1000 ]  58% - 0:00:00 left \r",
      " [  581 / 1000 ]  58% - 0:00:00 left \r",
      " [  582 / 1000 ]  58% - 0:00:00 left \r",
      " [  583 / 1000 ]  58% - 0:00:00 left \r",
      " [  584 / 1000 ]  58% - 0:00:00 left \r",
      " [  585 / 1000 ]  58% - 0:00:00 left \r",
      " [  586 / 1000 ]  59% - 0:00:00 left \r",
      " [  587 / 1000 ]  59% - 0:00:00 left \r",
      " [  588 / 1000 ]  59% - 0:00:00 left \r",
      " [  589 / 1000 ]  59% - 0:00:00 left \r",
      " [  590 / 1000 ]  59% - 0:00:00 left \r",
      " [  591 / 1000 ]  59% - 0:00:00 left \r",
      " [  592 / 1000 ]  59% - 0:00:00 left \r",
      " [  593 / 1000 ]  59% - 0:00:00 left \r",
      " [  594 / 1000 ]  59% - 0:00:00 left \r",
      " [  595 / 1000 ]  60% - 0:00:00 left \r",
      " [  596 / 1000 ]  60% - 0:00:00 left \r",
      " [  597 / 1000 ]  60% - 0:00:00 left \r",
      " [  598 / 1000 ]  60% - 0:00:00 left \r",
      " [  599 / 1000 ]  60% - 0:00:00 left \r",
      " [  600 / 1000 ]  60% - 0:00:00 left \r",
      " [  601 / 1000 ]  60% - 0:00:00 left \r",
      " [  602 / 1000 ]  60% - 0:00:00 left \r",
      " [  603 / 1000 ]  60% - 0:00:00 left \r",
      " [  604 / 1000 ]  60% - 0:00:00 left \r",
      " [  605 / 1000 ]  60% - 0:00:00 left \r",
      " [  606 / 1000 ]  61% - 0:00:00 left \r",
      " [  607 / 1000 ]  61% - 0:00:00 left \r",
      " [  608 / 1000 ]  61% - 0:00:00 left \r",
      " [  609 / 1000 ]  61% - 0:00:00 left \r",
      " [  610 / 1000 ]  61% - 0:00:00 left \r",
      " [  611 / 1000 ]  61% - 0:00:00 left \r",
      " [  612 / 1000 ]  61% - 0:00:00 left \r",
      " [  613 / 1000 ]  61% - 0:00:00 left \r",
      " [  614 / 1000 ]  61% - 0:00:00 left \r",
      " [  615 / 1000 ]  62% - 0:00:00 left \r",
      " [  616 / 1000 ]  62% - 0:00:00 left \r",
      " [  617 / 1000 ]  62% - 0:00:00 left \r",
      " [  618 / 1000 ]  62% - 0:00:00 left \r",
      " [  619 / 1000 ]  62% - 0:00:00 left \r",
      " [  620 / 1000 ]  62% - 0:00:00 left \r",
      " [  621 / 1000 ]  62% - 0:00:00 left \r",
      " [  622 / 1000 ]  62% - 0:00:00 left \r",
      " [  623 / 1000 ]  62% - 0:00:00 left \r",
      " [  624 / 1000 ]  62% - 0:00:00 left \r",
      " [  625 / 1000 ]  62% - 0:00:00 left \r",
      " [  626 / 1000 ]  63% - 0:00:00 left \r",
      " [  627 / 1000 ]  63% - 0:00:00 left \r",
      " [  628 / 1000 ]  63% - 0:00:00 left \r",
      " [  629 / 1000 ]  63% - 0:00:00 left \r",
      " [  630 / 1000 ]  63% - 0:00:00 left \r",
      " [  631 / 1000 ]  63% - 0:00:00 left \r",
      " [  632 / 1000 ]  63% - 0:00:00 left \r",
      " [  633 / 1000 ]  63% - 0:00:00 left \r",
      " [  634 / 1000 ]  63% - 0:00:00 left \r",
      " [  635 / 1000 ]  64% - 0:00:00 left \r",
      " [  636 / 1000 ]  64% - 0:00:00 left \r",
      " [  637 / 1000 ]  64% - 0:00:00 left \r",
      " [  638 / 1000 ]  64% - 0:00:00 left \r",
      " [  639 / 1000 ]  64% - 0:00:00 left \r",
      " [  640 / 1000 ]  64% - 0:00:00 left \r",
      " [  641 / 1000 ]  64% - 0:00:00 left \r",
      " [  642 / 1000 ]  64% - 0:00:00 left \r",
      " [  643 / 1000 ]  64% - 0:00:00 left \r",
      " [  644 / 1000 ]  64% - 0:00:00 left \r",
      " [  645 / 1000 ]  64% - 0:00:00 left \r",
      " [  646 / 1000 ]  65% - 0:00:00 left \r",
      " [  647 / 1000 ]  65% - 0:00:00 left \r",
      " [  648 / 1000 ]  65% - 0:00:00 left \r",
      " [  649 / 1000 ]  65% - 0:00:00 left \r",
      " [  650 / 1000 ]  65% - 0:00:00 left \r",
      " [  651 / 1000 ]  65% - 0:00:00 left \r",
      " [  652 / 1000 ]  65% - 0:00:00 left \r",
      " [  653 / 1000 ]  65% - 0:00:00 left \r",
      " [  654 / 1000 ]  65% - 0:00:00 left \r",
      " [  655 / 1000 ]  66% - 0:00:00 left \r",
      " [  656 / 1000 ]  66% - 0:00:00 left \r",
      " [  657 / 1000 ]  66% - 0:00:00 left \r",
      " [  658 / 1000 ]  66% - 0:00:00 left \r",
      " [  659 / 1000 ]  66% - 0:00:00 left \r",
      " [  660 / 1000 ]  66% - 0:00:00 left \r",
      " [  661 / 1000 ]  66% - 0:00:00 left \r",
      " [  662 / 1000 ]  66% - 0:00:00 left \r",
      " [  663 / 1000 ]  66% - 0:00:00 left \r",
      " [  664 / 1000 ]  66% - 0:00:00 left \r",
      " [  665 / 1000 ]  66% - 0:00:00 left \r",
      " [  666 / 1000 ]  67% - 0:00:00 left \r",
      " [  667 / 1000 ]  67% - 0:00:00 left \r",
      " [  668 / 1000 ]  67% - 0:00:00 left \r",
      " [  669 / 1000 ]  67% - 0:00:00 left \r",
      " [  670 / 1000 ]  67% - 0:00:00 left \r",
      " [  671 / 1000 ]  67% - 0:00:00 left \r",
      " [  672 / 1000 ]  67% - 0:00:00 left \r",
      " [  673 / 1000 ]  67% - 0:00:00 left \r",
      " [  674 / 1000 ]  67% - 0:00:00 left \r",
      " [  675 / 1000 ]  68% - 0:00:00 left \r",
      " [  676 / 1000 ]  68% - 0:00:00 left \r",
      " [  677 / 1000 ]  68% - 0:00:00 left \r",
      " [  678 / 1000 ]  68% - 0:00:00 left \r",
      " [  679 / 1000 ]  68% - 0:00:00 left \r",
      " [  680 / 1000 ]  68% - 0:00:00 left \r",
      " [  681 / 1000 ]  68% - 0:00:00 left \r",
      " [  682 / 1000 ]  68% - 0:00:00 left \r",
      " [  683 / 1000 ]  68% - 0:00:00 left \r",
      " [  684 / 1000 ]  68% - 0:00:00 left \r",
      " [  685 / 1000 ]  68% - 0:00:00 left \r",
      " [  686 / 1000 ]  69% - 0:00:00 left \r",
      " [  687 / 1000 ]  69% - 0:00:00 left \r",
      " [  688 / 1000 ]  69% - 0:00:00 left \r",
      " [  689 / 1000 ]  69% - 0:00:00 left \r",
      " [  690 / 1000 ]  69% - 0:00:00 left \r",
      " [  691 / 1000 ]  69% - 0:00:00 left \r",
      " [  692 / 1000 ]  69% - 0:00:00 left \r",
      " [  693 / 1000 ]  69% - 0:00:00 left \r",
      " [  694 / 1000 ]  69% - 0:00:00 left \r",
      " [  695 / 1000 ]  70% - 0:00:00 left \r",
      " [  696 / 1000 ]  70% - 0:00:00 left \r",
      " [  697 / 1000 ]  70% - 0:00:00 left \r",
      " [  698 / 1000 ]  70% - 0:00:00 left \r",
      " [  699 / 1000 ]  70% - 0:00:00 left \r",
      " [  700 / 1000 ]  70% - 0:00:00 left \r",
      " [  701 / 1000 ]  70% - 0:00:00 left \r",
      " [  702 / 1000 ]  70% - 0:00:00 left \r",
      " [  703 / 1000 ]  70% - 0:00:00 left \r",
      " [  704 / 1000 ]  70% - 0:00:00 left \r",
      " [  705 / 1000 ]  70% - 0:00:00 left \r",
      " [  706 / 1000 ]  71% - 0:00:00 left \r",
      " [  707 / 1000 ]  71% - 0:00:00 left \r",
      " [  708 / 1000 ]  71% - 0:00:00 left \r",
      " [  709 / 1000 ]  71% - 0:00:00 left \r",
      " [  710 / 1000 ]  71% - 0:00:00 left \r",
      " [  711 / 1000 ]  71% - 0:00:00 left \r",
      " [  712 / 1000 ]  71% - 0:00:00 left \r",
      " [  713 / 1000 ]  71% - 0:00:00 left \r",
      " [  714 / 1000 ]  71% - 0:00:00 left \r",
      " [  715 / 1000 ]  72% - 0:00:00 left \r",
      " [  716 / 1000 ]  72% - 0:00:00 left \r",
      " [  717 / 1000 ]  72% - 0:00:00 left \r",
      " [  718 / 1000 ]  72% - 0:00:00 left \r",
      " [  719 / 1000 ]  72% - 0:00:00 left \r",
      " [  720 / 1000 ]  72% - 0:00:00 left \r",
      " [  721 / 1000 ]  72% - 0:00:00 left \r",
      " [  722 / 1000 ]  72% - 0:00:00 left \r",
      " [  723 / 1000 ]  72% - 0:00:00 left \r",
      " [  724 / 1000 ]  72% - 0:00:00 left \r",
      " [  725 / 1000 ]  72% - 0:00:00 left \r",
      " [  726 / 1000 ]  73% - 0:00:00 left \r",
      " [  727 / 1000 ]  73% - 0:00:00 left \r",
      " [  728 / 1000 ]  73% - 0:00:00 left \r",
      " [  729 / 1000 ]  73% - 0:00:00 left \r",
      " [  730 / 1000 ]  73% - 0:00:00 left \r",
      " [  731 / 1000 ]  73% - 0:00:00 left \r",
      " [  732 / 1000 ]  73% - 0:00:00 left \r",
      " [  733 / 1000 ]  73% - 0:00:00 left \r",
      " [  734 / 1000 ]  73% - 0:00:00 left \r",
      " [  735 / 1000 ]  74% - 0:00:00 left \r",
      " [  736 / 1000 ]  74% - 0:00:00 left \r",
      " [  737 / 1000 ]  74% - 0:00:00 left \r",
      " [  738 / 1000 ]  74% - 0:00:00 left \r",
      " [  739 / 1000 ]  74% - 0:00:00 left \r",
      " [  740 / 1000 ]  74% - 0:00:00 left \r",
      " [  741 / 1000 ]  74% - 0:00:00 left \r",
      " [  742 / 1000 ]  74% - 0:00:00 left \r",
      " [  743 / 1000 ]  74% - 0:00:00 left \r",
      " [  744 / 1000 ]  74% - 0:00:00 left \r",
      " [  745 / 1000 ]  74% - 0:00:00 left \r",
      " [  746 / 1000 ]  75% - 0:00:00 left \r",
      " [  747 / 1000 ]  75% - 0:00:00 left \r",
      " [  748 / 1000 ]  75% - 0:00:00 left \r",
      " [  749 / 1000 ]  75% - 0:00:00 left \r",
      " [  750 / 1000 ]  75% - 0:00:00 left \r",
      " [  751 / 1000 ]  75% - 0:00:00 left \r",
      " [  752 / 1000 ]  75% - 0:00:00 left \r",
      " [  753 / 1000 ]  75% - 0:00:00 left \r",
      " [  754 / 1000 ]  75% - 0:00:00 left \r",
      " [  755 / 1000 ]  76% - 0:00:00 left \r",
      " [  756 / 1000 ]  76% - 0:00:00 left \r",
      " [  757 / 1000 ]  76% - 0:00:00 left \r",
      " [  758 / 1000 ]  76% - 0:00:00 left \r",
      " [  759 / 1000 ]  76% - 0:00:00 left \r",
      " [  760 / 1000 ]  76% - 0:00:00 left \r",
      " [  761 / 1000 ]  76% - 0:00:00 left \r",
      " [  762 / 1000 ]  76% - 0:00:00 left \r",
      " [  763 / 1000 ]  76% - 0:00:00 left \r",
      " [  764 / 1000 ]  76% - 0:00:00 left \r",
      " [  765 / 1000 ]  76% - 0:00:00 left \r",
      " [  766 / 1000 ]  77% - 0:00:00 left \r",
      " [  767 / 1000 ]  77% - 0:00:00 left \r",
      " [  768 / 1000 ]  77% - 0:00:00 left \r",
      " [  769 / 1000 ]  77% - 0:00:00 left \r",
      " [  770 / 1000 ]  77% - 0:00:00 left \r",
      " [  771 / 1000 ]  77% - 0:00:00 left \r",
      " [  772 / 1000 ]  77% - 0:00:00 left \r",
      " [  773 / 1000 ]  77% - 0:00:00 left \r",
      " [  774 / 1000 ]  77% - 0:00:00 left \r",
      " [  775 / 1000 ]  78% - 0:00:00 left \r",
      " [  776 / 1000 ]  78% - 0:00:00 left \r",
      " [  777 / 1000 ]  78% - 0:00:00 left \r",
      " [  778 / 1000 ]  78% - 0:00:00 left \r",
      " [  779 / 1000 ]  78% - 0:00:00 left \r",
      " [  780 / 1000 ]  78% - 0:00:00 left \r",
      " [  781 / 1000 ]  78% - 0:00:00 left \r",
      " [  782 / 1000 ]  78% - 0:00:00 left \r",
      " [  783 / 1000 ]  78% - 0:00:00 left \r",
      " [  784 / 1000 ]  78% - 0:00:00 left \r",
      " [  785 / 1000 ]  78% - 0:00:00 left \r",
      " [  786 / 1000 ]  79% - 0:00:00 left \r",
      " [  787 / 1000 ]  79% - 0:00:00 left \r",
      " [  788 / 1000 ]  79% - 0:00:00 left \r",
      " [  789 / 1000 ]  79% - 0:00:00 left \r",
      " [  790 / 1000 ]  79% - 0:00:00 left \r",
      " [  791 / 1000 ]  79% - 0:00:00 left \r",
      " [  792 / 1000 ]  79% - 0:00:00 left \r",
      " [  793 / 1000 ]  79% - 0:00:00 left \r",
      " [  794 / 1000 ]  79% - 0:00:00 left \r",
      " [  795 / 1000 ]  80% - 0:00:00 left \r",
      " [  796 / 1000 ]  80% - 0:00:00 left \r",
      " [  797 / 1000 ]  80% - 0:00:00 left \r",
      " [  798 / 1000 ]  80% - 0:00:00 left \r",
      " [  799 / 1000 ]  80% - 0:00:00 left \r",
      " [  800 / 1000 ]  80% - 0:00:00 left \r",
      " [  801 / 1000 ]  80% - 0:00:00 left \r",
      " [  802 / 1000 ]  80% - 0:00:00 left \r",
      " [  803 / 1000 ]  80% - 0:00:00 left \r",
      " [  804 / 1000 ]  80% - 0:00:00 left \r",
      " [  805 / 1000 ]  80% - 0:00:00 left \r",
      " [  806 / 1000 ]  81% - 0:00:00 left \r",
      " [  807 / 1000 ]  81% - 0:00:00 left \r",
      " [  808 / 1000 ]  81% - 0:00:00 left \r",
      " [  809 / 1000 ]  81% - 0:00:00 left \r",
      " [  810 / 1000 ]  81% - 0:00:00 left \r",
      " [  811 / 1000 ]  81% - 0:00:00 left \r",
      " [  812 / 1000 ]  81% - 0:00:00 left \r",
      " [  813 / 1000 ]  81% - 0:00:00 left \r",
      " [  814 / 1000 ]  81% - 0:00:00 left \r",
      " [  815 / 1000 ]  82% - 0:00:00 left \r",
      " [  816 / 1000 ]  82% - 0:00:00 left \r",
      " [  817 / 1000 ]  82% - 0:00:00 left \r",
      " [  818 / 1000 ]  82% - 0:00:00 left \r",
      " [  819 / 1000 ]  82% - 0:00:00 left \r",
      " [  820 / 1000 ]  82% - 0:00:00 left \r",
      " [  821 / 1000 ]  82% - 0:00:00 left \r",
      " [  822 / 1000 ]  82% - 0:00:00 left \r",
      " [  823 / 1000 ]  82% - 0:00:00 left \r",
      " [  824 / 1000 ]  82% - 0:00:00 left \r",
      " [  825 / 1000 ]  82% - 0:00:00 left \r",
      " [  826 / 1000 ]  83% - 0:00:00 left \r",
      " [  827 / 1000 ]  83% - 0:00:00 left \r",
      " [  828 / 1000 ]  83% - 0:00:00 left \r",
      " [  829 / 1000 ]  83% - 0:00:00 left \r",
      " [  830 / 1000 ]  83% - 0:00:00 left \r",
      " [  831 / 1000 ]  83% - 0:00:00 left \r",
      " [  832 / 1000 ]  83% - 0:00:00 left \r",
      " [  833 / 1000 ]  83% - 0:00:00 left \r",
      " [  834 / 1000 ]  83% - 0:00:00 left \r",
      " [  835 / 1000 ]  84% - 0:00:00 left \r",
      " [  836 / 1000 ]  84% - 0:00:00 left \r",
      " [  837 / 1000 ]  84% - 0:00:00 left \r",
      " [  838 / 1000 ]  84% - 0:00:00 left \r",
      " [  839 / 1000 ]  84% - 0:00:00 left \r",
      " [  840 / 1000 ]  84% - 0:00:00 left \r",
      " [  841 / 1000 ]  84% - 0:00:00 left \r",
      " [  842 / 1000 ]  84% - 0:00:00 left \r",
      " [  843 / 1000 ]  84% - 0:00:00 left \r",
      " [  844 / 1000 ]  84% - 0:00:00 left \r",
      " [  845 / 1000 ]  84% - 0:00:00 left \r",
      " [  846 / 1000 ]  85% - 0:00:00 left \r",
      " [  847 / 1000 ]  85% - 0:00:00 left \r",
      " [  848 / 1000 ]  85% - 0:00:00 left \r",
      " [  849 / 1000 ]  85% - 0:00:00 left \r",
      " [  850 / 1000 ]  85% - 0:00:00 left \r",
      " [  851 / 1000 ]  85% - 0:00:00 left \r",
      " [  852 / 1000 ]  85% - 0:00:00 left \r",
      " [  853 / 1000 ]  85% - 0:00:00 left \r",
      " [  854 / 1000 ]  85% - 0:00:00 left \r",
      " [  855 / 1000 ]  86% - 0:00:00 left \r",
      " [  856 / 1000 ]  86% - 0:00:00 left \r",
      " [  857 / 1000 ]  86% - 0:00:00 left \r",
      " [  858 / 1000 ]  86% - 0:00:00 left \r",
      " [  859 / 1000 ]  86% - 0:00:00 left \r",
      " [  860 / 1000 ]  86% - 0:00:00 left \r",
      " [  861 / 1000 ]  86% - 0:00:00 left \r",
      " [  862 / 1000 ]  86% - 0:00:00 left \r",
      " [  863 / 1000 ]  86% - 0:00:00 left \r",
      " [  864 / 1000 ]  86% - 0:00:00 left \r",
      " [  865 / 1000 ]  86% - 0:00:00 left \r",
      " [  866 / 1000 ]  87% - 0:00:00 left \r",
      " [  867 / 1000 ]  87% - 0:00:00 left \r",
      " [  868 / 1000 ]  87% - 0:00:00 left \r",
      " [  869 / 1000 ]  87% - 0:00:00 left \r",
      " [  870 / 1000 ]  87% - 0:00:00 left \r",
      " [  871 / 1000 ]  87% - 0:00:00 left \r",
      " [  872 / 1000 ]  87% - 0:00:00 left \r",
      " [  873 / 1000 ]  87% - 0:00:00 left \r",
      " [  874 / 1000 ]  87% - 0:00:00 left \r",
      " [  875 / 1000 ]  88% - 0:00:00 left \r",
      " [  876 / 1000 ]  88% - 0:00:00 left \r",
      " [  877 / 1000 ]  88% - 0:00:00 left \r",
      " [  878 / 1000 ]  88% - 0:00:00 left \r",
      " [  879 / 1000 ]  88% - 0:00:00 left \r",
      " [  880 / 1000 ]  88% - 0:00:00 left \r",
      " [  881 / 1000 ]  88% - 0:00:00 left \r",
      " [  882 / 1000 ]  88% - 0:00:00 left \r",
      " [  883 / 1000 ]  88% - 0:00:00 left \r",
      " [  884 / 1000 ]  88% - 0:00:00 left \r",
      " [  885 / 1000 ]  88% - 0:00:00 left \r",
      " [  886 / 1000 ]  89% - 0:00:00 left \r",
      " [  887 / 1000 ]  89% - 0:00:00 left \r",
      " [  888 / 1000 ]  89% - 0:00:00 left \r",
      " [  889 / 1000 ]  89% - 0:00:00 left \r",
      " [  890 / 1000 ]  89% - 0:00:00 left \r",
      " [  891 / 1000 ]  89% - 0:00:00 left \r",
      " [  892 / 1000 ]  89% - 0:00:00 left \r",
      " [  893 / 1000 ]  89% - 0:00:00 left \r",
      " [  894 / 1000 ]  89% - 0:00:00 left \r",
      " [  895 / 1000 ]  90% - 0:00:00 left \r",
      " [  896 / 1000 ]  90% - 0:00:00 left \r",
      " [  897 / 1000 ]  90% - 0:00:00 left \r",
      " [  898 / 1000 ]  90% - 0:00:00 left \r",
      " [  899 / 1000 ]  90% - 0:00:00 left \r",
      " [  900 / 1000 ]  90% - 0:00:00 left \r",
      " [  901 / 1000 ]  90% - 0:00:00 left \r",
      " [  902 / 1000 ]  90% - 0:00:00 left \r",
      " [  903 / 1000 ]  90% - 0:00:00 left \r",
      " [  904 / 1000 ]  90% - 0:00:00 left \r",
      " [  905 / 1000 ]  90% - 0:00:00 left \r",
      " [  906 / 1000 ]  91% - 0:00:00 left \r",
      " [  907 / 1000 ]  91% - 0:00:00 left \r",
      " [  908 / 1000 ]  91% - 0:00:00 left \r",
      " [  909 / 1000 ]  91% - 0:00:00 left \r",
      " [  910 / 1000 ]  91% - 0:00:00 left \r",
      " [  911 / 1000 ]  91% - 0:00:00 left \r",
      " [  912 / 1000 ]  91% - 0:00:00 left \r",
      " [  913 / 1000 ]  91% - 0:00:00 left \r",
      " [  914 / 1000 ]  91% - 0:00:00 left \r",
      " [  915 / 1000 ]  92% - 0:00:00 left \r",
      " [  916 / 1000 ]  92% - 0:00:00 left \r",
      " [  917 / 1000 ]  92% - 0:00:00 left \r",
      " [  918 / 1000 ]  92% - 0:00:00 left \r",
      " [  919 / 1000 ]  92% - 0:00:00 left \r",
      " [  920 / 1000 ]  92% - 0:00:00 left \r",
      " [  921 / 1000 ]  92% - 0:00:00 left \r",
      " [  922 / 1000 ]  92% - 0:00:00 left \r",
      " [  923 / 1000 ]  92% - 0:00:00 left \r",
      " [  924 / 1000 ]  92% - 0:00:00 left \r",
      " [  925 / 1000 ]  92% - 0:00:00 left \r",
      " [  926 / 1000 ]  93% - 0:00:00 left \r",
      " [  927 / 1000 ]  93% - 0:00:00 left \r",
      " [  928 / 1000 ]  93% - 0:00:00 left \r",
      " [  929 / 1000 ]  93% - 0:00:00 left \r",
      " [  930 / 1000 ]  93% - 0:00:00 left \r",
      " [  931 / 1000 ]  93% - 0:00:00 left \r",
      " [  932 / 1000 ]  93% - 0:00:00 left \r",
      " [  933 / 1000 ]  93% - 0:00:00 left \r",
      " [  934 / 1000 ]  93% - 0:00:00 left \r",
      " [  935 / 1000 ]  94% - 0:00:00 left \r",
      " [  936 / 1000 ]  94% - 0:00:00 left \r",
      " [  937 / 1000 ]  94% - 0:00:00 left \r",
      " [  938 / 1000 ]  94% - 0:00:00 left \r",
      " [  939 / 1000 ]  94% - 0:00:00 left \r",
      " [  940 / 1000 ]  94% - 0:00:00 left \r",
      " [  941 / 1000 ]  94% - 0:00:00 left \r",
      " [  942 / 1000 ]  94% - 0:00:00 left \r",
      " [  943 / 1000 ]  94% - 0:00:00 left \r",
      " [  944 / 1000 ]  94% - 0:00:00 left \r",
      " [  945 / 1000 ]  94% - 0:00:00 left \r",
      " [  946 / 1000 ]  95% - 0:00:00 left \r",
      " [  947 / 1000 ]  95% - 0:00:00 left \r",
      " [  948 / 1000 ]  95% - 0:00:00 left \r",
      " [  949 / 1000 ]  95% - 0:00:00 left \r",
      " [  950 / 1000 ]  95% - 0:00:00 left \r",
      " [  951 / 1000 ]  95% - 0:00:00 left \r",
      " [  952 / 1000 ]  95% - 0:00:00 left \r",
      " [  953 / 1000 ]  95% - 0:00:00 left \r",
      " [  954 / 1000 ]  95% - 0:00:00 left \r",
      " [  955 / 1000 ]  96% - 0:00:00 left \r",
      " [  956 / 1000 ]  96% - 0:00:00 left \r",
      " [  957 / 1000 ]  96% - 0:00:00 left \r",
      " [  958 / 1000 ]  96% - 0:00:00 left \r",
      " [  959 / 1000 ]  96% - 0:00:00 left \r",
      " [  960 / 1000 ]  96% - 0:00:00 left \r",
      " [  961 / 1000 ]  96% - 0:00:00 left \r",
      " [  962 / 1000 ]  96% - 0:00:00 left \r",
      " [  963 / 1000 ]  96% - 0:00:00 left \r",
      " [  964 / 1000 ]  96% - 0:00:00 left \r",
      " [  965 / 1000 ]  96% - 0:00:00 left \r",
      " [  966 / 1000 ]  97% - 0:00:00 left \r",
      " [  967 / 1000 ]  97% - 0:00:00 left \r",
      " [  968 / 1000 ]  97% - 0:00:00 left \r",
      " [  969 / 1000 ]  97% - 0:00:00 left \r",
      " [  970 / 1000 ]  97% - 0:00:00 left \r",
      " [  971 / 1000 ]  97% - 0:00:00 left \r",
      " [  972 / 1000 ]  97% - 0:00:00 left \r",
      " [  973 / 1000 ]  97% - 0:00:00 left \r",
      " [  974 / 1000 ]  97% - 0:00:00 left \r",
      " [  975 / 1000 ]  98% - 0:00:00 left \r",
      " [  976 / 1000 ]  98% - 0:00:00 left \r",
      " [  977 / 1000 ]  98% - 0:00:00 left \r",
      " [  978 / 1000 ]  98% - 0:00:00 left \r",
      " [  979 / 1000 ]  98% - 0:00:00 left \r",
      " [  980 / 1000 ]  98% - 0:00:00 left \r",
      " [  981 / 1000 ]  98% - 0:00:00 left \r",
      " [  982 / 1000 ]  98% - 0:00:00 left \r",
      " [  983 / 1000 ]  98% - 0:00:00 left \r",
      " [  984 / 1000 ]  98% - 0:00:00 left \r",
      " [  985 / 1000 ]  98% - 0:00:00 left \r",
      " [  986 / 1000 ]  99% - 0:00:00 left \r",
      " [  987 / 1000 ]  99% - 0:00:00 left \r",
      " [  988 / 1000 ]  99% - 0:00:00 left \r",
      " [  989 / 1000 ]  99% - 0:00:00 left \r",
      " [  990 / 1000 ]  99% - 0:00:00 left \r",
      " [  991 / 1000 ]  99% - 0:00:00 left \r",
      " [  992 / 1000 ]  99% - 0:00:00 left \r",
      " [  993 / 1000 ]  99% - 0:00:00 left \r",
      " [  994 / 1000 ]  99% - 0:00:00 left \r",
      " [  995 / 1000 ] 100% - 0:00:00 left \r",
      " [  996 / 1000 ] 100% - 0:00:00 left \r",
      " [  997 / 1000 ] 100% - 0:00:00 left \r",
      " [  998 / 1000 ] 100% - 0:00:00 left \r",
      " [  999 / 1000 ] 100% - 0:00:00 left \r",
      " [ 1000 / 1000 ] 100% - 0:00:00 left \n",
      " quantization error: 7.916278445489815e-05\n",
      " topographic error: 0.18666666666666668\n"
     ]
    }
   ],
   "source": [
    "import sys\n",
    "sys.path.insert(0, '../')\n",
    "\n",
    "from minisom import MiniSom\n",
    "\n",
    "from sklearn.model_selection import train_test_split\n",
    "from sklearn.metrics import classification_report\n",
    "\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "from matplotlib.gridspec import GridSpec\n",
    "%matplotlib inline\n",
    "\n",
    "%load_ext autoreload\n",
    "\n",
    "data = np.genfromtxt('iris.csv', delimiter=',', usecols=(0, 1, 2, 3))\n",
    "data = np.apply_along_axis(lambda x: x/np.linalg.norm(x), 1, data)\n",
    "labels = np.genfromtxt('iris.csv', delimiter=',', usecols=(4), dtype=str)\n",
    "\n",
    "# Initialization and training\n",
    "som = MiniSom(7, 7, 4, sigma=3, learning_rate=0.5, \n",
    "              neighborhood_function='triangle', random_seed=10)\n",
    "som.train(data, 1000, verbose=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "class_assignments = som.labels_map(data, labels)\n",
    "\n",
    "def classify(som, data, class_assignments):\n",
    "    \"\"\"Classifies each sample in data in one of the classes definited\n",
    "    using the method labels_map.\n",
    "    Returns a list of the same length of data where the i-th element\n",
    "    is the class assigned to data[i].\n",
    "    \"\"\"\n",
    "    winmap = class_assignments\n",
    "    default_class = np.sum(list(winmap.values())).most_common()[0][0]\n",
    "    result = []\n",
    "    for d in data:\n",
    "        win_position = som.winner(d)\n",
    "        if win_position in winmap:\n",
    "            result.append(winmap[win_position].most_common()[0][0])\n",
    "        else:\n",
    "            result.append(default_class)\n",
    "    return result"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "              precision    recall  f1-score   support\n",
      "\n",
      "      setosa       0.90      1.00      0.95         9\n",
      "  versicolor       1.00      0.93      0.97        15\n",
      "   virginica       0.93      0.93      0.93        14\n",
      "\n",
      "    accuracy                           0.95        38\n",
      "   macro avg       0.94      0.95      0.95        38\n",
      "weighted avg       0.95      0.95      0.95        38\n",
      "\n"
     ]
    }
   ],
   "source": [
    "X_train, X_test, y_train, y_test = train_test_split(data, labels)\n",
    "\n",
    "som.pca_weights_init(X_train)\n",
    "som.train_random(X_train, 5000, verbose=False)\n",
    "class_assignments = som.labels_map(X_train, y_train)\n",
    "\n",
    "print(classification_report(y_test, classify(som, X_test, class_assignments)))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.0"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
